package com.mes.cloud.dao;

import com.mes.cloud.api.dto.request.productpricegroup.ProductPriceGroupListRequest;
import com.mes.cloud.api.dto.response.syncdata.SynchroProductPriceGroupCustomerGroupDto;
import com.mes.cloud.api.dto.response.syncdata.SynchroProductPriceGroupProductDto;
import com.mes.cloud.entity.ProductPriceGroup;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.ids.SelectByIdsMapper;

import java.util.List;
import java.util.Set;

/**
 * 产品价格组
 *
 * @author wxm
 * @email xiaomin.wu1@pactera.com
 * @version 2019-09-24 16:08:41
 */
public interface ProductPriceGroupDao extends SelectByIdsMapper<ProductPriceGroup>, Mapper<ProductPriceGroup>{

    /**
     * 查询产品价格组列表
     * @param productPriceGroupListRequest
     * @return
     */
    List<ProductPriceGroup> list(ProductPriceGroupListRequest productPriceGroupListRequest);

    /**
     * 批量禁用启用产品价格组
     * @param enableFlag
     * @param ids
     * @param updateDateStr
     * @param
     * @return
     */
    int batchEnableFlag(@Param("enableFlag") String enableFlag, @Param("ids") Set<String> ids,
                        @Param("updateDateStr") String updateDateStr,
                        @Param("employeeNo") String employeeNo,
                        @Param("employeeName") String employeeName);

    /**
     * 统计产品价格组的客户数
     * @param productPriceGroupId
     * @return
     */
    int productPriceGroupCountCustomer(@Param("productPriceGroupId") String productPriceGroupId);

    /**
     * @Author ysd
     * @Description 批量导入
     * @Date 15:37 2019/10/23
     **/
    int batchInsert(@Param("result") List<ProductPriceGroup> result);

    /**
     * @Author ysd
     * @Description 批量更新
     * @Date 15:37 2019/10/23
     **/
    int batchUpdate(List<ProductPriceGroup> result);

    /**
     * @Author ysd
     * @Description 价格组详情
     * @Date 15:37 2019/10/23
     **/
    ProductPriceGroup findPriceGroupDetails(@Param("code") String code);
    /**
     * @Author ysd
     * @Description 价格组详情
     * @Date 15:37 2019/10/23
     **/
    List<ProductPriceGroup>  findPriceGroupDetailsByMatnxList(@Param("list") List<SynchroProductPriceGroupProductDto> resultList);

    /**
     * @Author ysd
     * @Description 价格组详情
     * @Date 15:37 2019/10/23
     **/
    List<ProductPriceGroup>  findPriceGroupDetailsByList(@Param("list") List<SynchroProductPriceGroupCustomerGroupDto> resultList);
}
